LASAFT-Net-v2 light¶
LASAFT-Net-v2 Light version for MDX Challenge
Preliminaries¶
!pip install git+https://github.com/ws-choi/LASAFT-Net-v2.git/ --quiet
Download a sample mixture track¶
Track info: Feel this breeze - (Prod. JoeSwan) - HyungWoo & Sunmin’
!wget https://github.com/ws-choi/LASAFT-Net-v2/raw/main/data/test/sample/mixture.wav
--2021-10-17 00:24:30-- https://github.com/ws-choi/LASAFT-Net-v2/raw/main/data/test/sample/mixture.wav
Resolving github.com (github.com)... 140.82.113.3
Connecting to github.com (github.com)|140.82.113.3|:443...
connected.
HTTP request sent, awaiting response...
302 Found
Location: https://raw.githubusercontent.com/ws-choi/LASAFT-Net-v2/main/data/test/sample/mixture.wav [following]
--2021-10-17 00:24:30-- https://raw.githubusercontent.com/ws-choi/LASAFT-Net-v2/main/data/test/sample/mixture.wav
Resolving raw.githubusercontent.com (raw.githubusercontent.com)...
185.199.108.133, 185.199.110.133, 185.199.109.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.108.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1234844 (1.2M) [audio/wav]
Saving to: ‘mixture.wav’
mixture.wav 0%[ ] 0 --.-KB/s
mixture.wav 100%[===================>] 1.18M --.-KB/s in 0.1s
2021-10-17 00:24:30 (8.66 MB/s) - ‘mixture.wav’ saved [1234844/1234844]
Load a Sample Mixture Track¶
import soundfile as sf
from IPython.display import display, Audio
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
print('Track info: Feel this breeze - (Prod. JoeSwan) - HyungWoo & Sunmin')
mixture, _ = sf.read('mixture.wav')
display(Audio(mixture.T, rate=44100))
Track info: Feel this breeze - (Prod. JoeSwan) - HyungWoo & Sunmin
Load the pretrained model¶
from lasaft.pretrained import get_mdx_light_v2_699
model = get_mdx_light_v2_699()
checkpoint is loaded
Separate sources with LASAFT-Net-V2¶
result = model.separate_tracks(mixture, ['vocals', 'drums', 'bass', 'other'], overlap_ratio=0.5, batch_size=4)
/home/wschoi/exit/envs/tutorial-environment/lib/python3.9/site-packages/torch/functional.py:545: UserWarning: istft will require a complex-valued input tensor in a future PyTorch release. Matching the output from stft with return_complex=True. (Triggered internally at /pytorch/aten/src/ATen/native/SpectralOps.cpp:817.)
return _VF.istft(input, n_fft, hop_length, win_length, window, center, # type: ignore[attr-defined]
print('separated vocals:')
display(Audio(result['vocals'].T, rate=44100))
separated vocals:
print('separated drums:')
display(Audio(result['drums'].T, rate=44100))
separated drums:
print('separated bass:')
display(Audio(result['bass'].T, rate=44100))
separated bass:
print('separated other:')
display(Audio(result['other'].T, rate=44100))
separated other: